export default {

		namespaced:true,
		
		state:{
			cart: JSON.parse(uni.getStorageSync('cart')|| '[]') 
		},
		mutations:{
			
			addTocart(state,goods){
				const findResult =state.cart.find( x => x.goods_id === goods.goods_id)
			
				if(!findResult){
					state.cart.push(goods)
				}else{
					findResult.goods_count ++
				}
				this.commit('m_cart/saveToStorage')
				
			},
			// 持久存储购物车中信息
			saveToStorage(state){
				uni.setStorageSync('cart',JSON.stringify(state.cart))
			},
			// 更新购物车中商品的勾选状态
			updateGoodsState(state,goods){
				const findResult = state.cart.find(x => x.goods_id === goods.goods_id)
				if(findResult){
					findResult.goods_state = goods.goods_state
					
					this.commit('m_cart/saveToStorage')
				}
			},
			// 更新购物车商品数量
			updateGoodsCount(state,goods){
				const findResult = state.cart.find(x => x.goods_id === goods.goods_id)
				if(findResult){
					findResult.goods_count = goods.goods_count
					
					this.commit('m_cart/saveToStorage')
				}
			},
			// 滑动删除购物车商品
			removeGoodsById(state,goods){
				state.cart = state.cart.filter(x=> x.goods_id !== goods.goods_id)
				this.commit('m_cart/saveToStorage')
			},
			// 更新购物车所有商品的选中状态
			updateAllGoodsState(state,newState){
				state.cart.forEach(x => x.goods_state = newState)
				
				this.commit('m_cart/saveToStorage')
			}
		},
		getters:{
			// 购物车商品的总数量
			total(state){
				// let c = 0
				// state.cart.forEach(goods => c += goods.goods_count)
				// return c
				return state.cart.reduce((total,item) => total += item.goods_count,0)
			},
			// 已勾选的商品数量
			checkedCount(state){
				return state.cart.filter(x => x.goods_state).reduce((total,item) => total += item.goods_count,0)	
			},
			//已勾选的商品总价
			checkedGoodsAmount(state){
				return state.cart.filter(x => x.goods_state)
					.reduce((total,item) => total += item.goods_price*item.goods_count,0)
					.toFixed(2)
			}
		},
	
	
}